package com.sc.mapper;

import com.sc.pojo.Huser;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

//就是原来的dao接口,无需实现类(替换成映射文件)
//一个mapper接口一般会对应一个映射文件(xml)
public interface HuserMapper {
    public List<Huser> select();
    public List<Huser> select2();
    //传递一个对象参数
    public int add(Huser u);
    public int del(Integer id);
    public int update(Huser u);
    //传递一个参数
    public Huser queryById(Integer id);
    //传递2个或多个参数 必须添加注解@Param("别名")
    public Huser login(@Param("un") String a,
                       @Param("pw") String b);
    //传递2个对象参数  开发肯定不会设计
    public int add2(@Param("a")Huser u1,
                    @Param("b")Huser u2);

    //传递 数组作为参数 实现批量删除
    public int batchDelete(Integer[] ids);
    //传递 对象集合作为参数 实现批量新增
    public int batchInsert(List<Huser> users);
    //传递 Map集合作为参数
    public Huser login2(Map<String,String> m);


    //一对一关联
    public Huser oneToOne(Integer id);
    public Huser oneToOne2(Integer id);

    public List<Huser> selectByDid(Integer did);

    //多对一关联
    public Huser manyToOne(Integer id);

    public int insert(Huser u);

    //实现动态搜索:可以根据账号  时间  部门编号  三个自由组合作为条件
    public List<Huser> search(Huser u);

    //动态更新:可以根据参数传递了什么值就修改什么值不传递不修改
    public  int dynamicUpdate(Huser u);

    //通过trim标签来实现动态搜索
    public List<Huser> search2(Huser u);
    //通过trim标签来实现动态更新
    public List<Huser> dynamicUpdate2(Huser u);
    //通过trim标签来实现动态新增
    public int dynamicInsert(Huser u);

    public Huser queryByPrimaryKey(Integer id);
}
